package templates

import java.awt.Color
import org.uqbar.arena.widgets.Button
import org.uqbar.arena.widgets.Label
import org.uqbar.arena.widgets.List
import org.uqbar.arena.widgets.Panel
import org.uqbar.lacar.ui.model.Action

class ResolverMisterioTemplate {
	
	
	/** Nos da todos los botones del menu del juego con sus acciones. */
	def crearOpcionesDeJuego(Panel panel, String bindingPais,Action actOA, Action actV, Action actE){
		new Label(panel) => [
			bindValueToProperty(bindingPais)
			setWidth(150)
		]
		
		new Button(panel) => [
			setCaption("Orden de Arresto")
			setBackground(Color ::LIGHT_GRAY)
			onClick(actOA)
		]
		
		new Button(panel) => [
			setCaption("Viajar")
			setBackground(Color ::LIGHT_GRAY)
			onClick(actV)
		]
		
		new Button(panel) => [
			setCaption("Expedientes")
			setBackground(Color ::LIGHT_GRAY)
			onClick(actE)
		]
	}
	
	/** Crea las opciones de los lugares del menu de resolver el misterio. */
	def crearOpcionesDeLugares(Panel panel,String l1,String l2,String l3, Action action1, Action action2, Action action3){
		
		new Label(panel) => [
			setText("Lugares")
			setWidth(150)
		]
		
		new Button(panel) => [
			setCaption(l1)
			setBackground(Color ::LIGHT_GRAY)
			onClick(action1)
			
		]
		
		new Button(panel) => [
			setCaption(l2)
			setBackground(Color ::LIGHT_GRAY)
			onClick(action2)
		]
		
		new Button(panel) => [
			setCaption(l3)
			setBackground(Color ::LIGHT_GRAY)
			onClick(action3)
		]
	}
	
	/** Crea la seccion donde se muestra el recorrido del detective */
	def crearRecorrido(Panel panel, String bindingRecorrido){
		new Label(panel) => [
			setText("Recorrido Criminal:")
			setWidth(150)
		]
		
		new Label(panel) => [
			bindValueToProperty(bindingRecorrido)
			setWidth(300)
		]
	}
	
	/** Crea la lista de destinos fallidos del menu de resolver el misterio */
	def crearListaDestinosFallidos(Panel panel, String bindingPaisesFallidos){
		new Label(panel) => [
			setText("Destinos Fallidos")
			setWidth(150)
		]
		
		new Label(panel) => [
			setText("Pais")
			setBackground(Color :: LIGHT_GRAY)
			setWidth(174)
		]
		
		new List(panel) => [
			setWidth(200)
			setHeight(35)
			bindItemsToProperty(bindingPaisesFallidos)
		]	
	}
}